import { notification } from 'antd'
import { session } from '@core'
import { NoAccess } from '@components'

import { useNavigate } from 'react-router-dom';


// auth 守护函数，包括用户登录状态校验，和用户是否有当前路径权限校验
// 所有设置了 auth:true 的 route 都会调用当前函数进行校验
// 返回 boolean 或者 [boolean, fallback]
const useOnAuth = ({ parentPath, path, fullPath, meta }) => {
  const navigate = useNavigate()
  const permissions = session.get('permissions')
  const token = session.get('token')
  if (!token) {
    notification.error({
      description: '用户登录异常或已过期',
      message: '登录异常',
      placement: 'top',
    })
    navigate('/login',{replace: true})
    session.clear()
    return false
  }

  // if (!permissions.includes(meta.id)) {
  //   return [false, <NoAccess />]
  // }

  return true
}

// route 路由守护
// 所有路由初始化前都会调用当前函数进行校验
// 返回 boolean 或者 [boolean, fallback]
const onBeforeRoute = ({ parentPath, path, fullPath, meta }) => {
  // console.log('>>> on before route:', fullPath, meta)
  return true
}

export { useOnAuth, onBeforeRoute }
